package com.kws.payment.dao;

import io.swagger.annotations.ApiModelProperty;

import java.math.BigDecimal;
import java.util.List;

/**
 * <b>UnionPayRq</b>
 *
 * @description: UnionPayRq <br>
 * @date: 2024/11/27 17:30 <br>
 * @author: lhm <br>
 * @version: 1.0 <br>
 */
public class UnionPayRq {
    @ApiModelProperty(value = "订单号",required = true)
    private String orderNo;

    @ApiModelProperty(value = "金额,单位分",required = true)
    private Integer totalAmount;

    @ApiModelProperty(value = "商品信息",required = true)
    private List<GoodsRq> goods;

    @ApiModelProperty(value = "商户附加数据")
    private String attachedData;

    @ApiModelProperty(value = "账单描述")
    private String orderDesc;

    @ApiModelProperty(value = "商品标记 用于优惠活动")
    private String goodsTag;

    @ApiModelProperty(value = "订单原始金额 单位：分，用于记录前端系统打折前的金额")
    private Integer originalAmount;

    @ApiModelProperty(value = "订单过期时间 格式：yyyy-MM-dd HH:mm:ss")
    private String expireTime;

    @ApiModelProperty(value = "业务应用类型 微信H5支付必填,\n" +
            "用于苹app应用里值为IOS_SDK ；用于安卓app\n" +
            "应用里值为AND_SDK；用于手机网站，\n" +
            "值为IOS_WAP 或AND_WAP")
    private String sceneType;

    @ApiModelProperty(value = "应用名称 微信H5支付必填，\n" +
            "用于苹或安卓app 应用中，传分别 对应在 AppStore和安卓分发市场中的应用名（如：全民付）；用于手机网站，传对应的网站名（如：银联商务官网）")
    private String merAppName;

    @ApiModelProperty(value = "应用标识 微信H5支付必填。\n" +
            "用于苹果或安卓 app 应用中，苹果传 IOS 应用唯一标识(如： com.tencent.wzryIOS )\n" +
            "安卓传包名 (如： com.tencent.tmgp.sgame)\n" +
            "如果是用于手机网站 ，传首页 URL 地址 , (如： https://m.jd.com ) ，支付宝H5支付参数无效")
    private String merAppId;

    @ApiModelProperty(value = "子订单信息 在传分账标记的情况下，若传子商户号，子商户分账金额必传，即ubOrders每个元素的mid和totalAmount非空且mid不超过20",required = true)
    private List<SubOrdersRq> subOrders;

    @ApiModelProperty(value = "分期付款期数 仅支持花呗分期和云闪付支付分期；支付宝花呗分期仅支持3、6、12")
    private String installmentNumber;

    @ApiModelProperty(value = "商户可通过上传该字段，禁用支付方式(仅支持支付宝交易)，支持多个，中间逗号分隔，例balance,creditCard。上传的枚举值参见附录：支付宝支付方式取值说明")
    private String disablePayChnl;

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public Integer getTotalAmount() {
        return totalAmount;
    }

    public void setTotalAmount(Integer totalAmount) {
        this.totalAmount = totalAmount;
    }

    public List<GoodsRq> getGoods() {
        return goods;
    }

    public void setGoods(List<GoodsRq> goods) {
        this.goods = goods;
    }

    public String getAttachedData() {
        return attachedData;
    }

    public void setAttachedData(String attachedData) {
        this.attachedData = attachedData;
    }

    public String getOrderDesc() {
        return orderDesc;
    }

    public void setOrderDesc(String orderDesc) {
        this.orderDesc = orderDesc;
    }

    public String getGoodsTag() {
        return goodsTag;
    }

    public void setGoodsTag(String goodsTag) {
        this.goodsTag = goodsTag;
    }

    public Integer getOriginalAmount() {
        return originalAmount;
    }

    public void setOriginalAmount(Integer originalAmount) {
        this.originalAmount = originalAmount;
    }

    public String getExpireTime() {
        return expireTime;
    }

    public void setExpireTime(String expireTime) {
        this.expireTime = expireTime;
    }

    public String getSceneType() {
        return sceneType;
    }

    public void setSceneType(String sceneType) {
        this.sceneType = sceneType;
    }

    public String getMerAppName() {
        return merAppName;
    }

    public void setMerAppName(String merAppName) {
        this.merAppName = merAppName;
    }

    public String getMerAppId() {
        return merAppId;
    }

    public void setMerAppId(String merAppId) {
        this.merAppId = merAppId;
    }

    public List<SubOrdersRq> getSubOrders() {
        return subOrders;
    }

    public void setSubOrders(List<SubOrdersRq> subOrders) {
        this.subOrders = subOrders;
    }

    public String getInstallmentNumber() {
        return installmentNumber;
    }

    public void setInstallmentNumber(String installmentNumber) {
        this.installmentNumber = installmentNumber;
    }

    public String getDisablePayChnl() {
        return disablePayChnl;
    }

    public void setDisablePayChnl(String disablePayChnl) {
        this.disablePayChnl = disablePayChnl;
    }
}
